/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidad;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author a
 */
@Entity
@Table(name = "producto_has_proveedor")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ProductoHasProveedor.findAll", query = "SELECT p FROM ProductoHasProveedor p"),
    @NamedQuery(name = "ProductoHasProveedor.findByProductoidProducto", query = "SELECT p FROM ProductoHasProveedor p WHERE p.productoHasProveedorPK.productoidProducto = :productoidProducto"),
    @NamedQuery(name = "ProductoHasProveedor.findByProveedoridProveedor", query = "SELECT p FROM ProductoHasProveedor p WHERE p.productoHasProveedorPK.proveedoridProveedor = :proveedoridProveedor"),
    @NamedQuery(name = "ProductoHasProveedor.findByPrecioCosto", query = "SELECT p FROM ProductoHasProveedor p WHERE p.precioCosto = :precioCosto")})
public class ProductoHasProveedor implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ProductoHasProveedorPK productoHasProveedorPK;
    @Basic(optional = false)
    @Column(name = "precioCosto")
    private float precioCosto;
    @JoinColumn(name = "Proveedor_idProveedor", referencedColumnName = "idProveedor", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Proveedor proveedor;
    @JoinColumn(name = "Producto_idProducto", referencedColumnName = "idProducto", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Producto producto;

    public ProductoHasProveedor() {
    }

    public ProductoHasProveedor(ProductoHasProveedorPK productoHasProveedorPK) {
        this.productoHasProveedorPK = productoHasProveedorPK;
    }

    public ProductoHasProveedor(ProductoHasProveedorPK productoHasProveedorPK, float precioCosto) {
        this.productoHasProveedorPK = productoHasProveedorPK;
        this.precioCosto = precioCosto;
    }

    public ProductoHasProveedor(int productoidProducto, int proveedoridProveedor) {
        this.productoHasProveedorPK = new ProductoHasProveedorPK(productoidProducto, proveedoridProveedor);
    }

    public ProductoHasProveedorPK getProductoHasProveedorPK() {
        return productoHasProveedorPK;
    }

    public void setProductoHasProveedorPK(ProductoHasProveedorPK productoHasProveedorPK) {
        this.productoHasProveedorPK = productoHasProveedorPK;
    }

    public float getPrecioCosto() {
        return precioCosto;
    }

    public void setPrecioCosto(float precioCosto) {
        this.precioCosto = precioCosto;
    }

    public Proveedor getProveedor() {
        return proveedor;
    }

    public void setProveedor(Proveedor proveedor) {
        this.proveedor = proveedor;
    }

    public Producto getProducto() {
        return producto;
    }

    public void setProducto(Producto producto) {
        this.producto = producto;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (productoHasProveedorPK != null ? productoHasProveedorPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ProductoHasProveedor)) {
            return false;
        }
        ProductoHasProveedor other = (ProductoHasProveedor) object;
        if ((this.productoHasProveedorPK == null && other.productoHasProveedorPK != null) || (this.productoHasProveedorPK != null && !this.productoHasProveedorPK.equals(other.productoHasProveedorPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entidad.ProductoHasProveedor[ productoHasProveedorPK=" + productoHasProveedorPK + " ]";
    }
    
}
